import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

import java.io.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class APP {
    public static void main(String[] args) throws Exception {
        Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
        // 指定模板文件从何处加载数据源，这里设置成一个文件目录
        cfg.setDirectoryForTemplateLoading(new File("templates"));
        // 指定模板如何检索数据模型,这是一个高级的主题了
        // 但可以先这么来用：
        cfg.setObjectWrapper(new DefaultObjectWrapper());
        // 创建根哈希表
        Map root = new HashMap<>();
        // 在根中放入字符串“user”
        root.put("user", "Big Joe");
        root.put("date", new Date());   // 在根中放入时间date
        cfg.setDefaultEncoding("utf-8");
        Template temp = cfg.getTemplate("test.ftl");    // 获取名叫test.ftl的模板
        Writer out = new OutputStreamWriter(new FileOutputStream("test.html")); // 输出到test.html文件上
        temp.process(root, out);    // 将模板和数据结合起来放到输出流上，
        out.flush();    // 将输出流刷出去
    }
}
